﻿using Abp.Application.Services;
using Abp.Application.Services.Dto;
using Xugege.AbpExtension.Application.Extension.Organizations.Dto;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xugege.AbpExtension.Authorization.Users.Dto;
using Xugege.AbpExtension.Organizations.Dto;

namespace Xugege.AbpExtension.Application.Extension.Organizations
{

    public interface IOrganizationUnitExtensionService : IApplicationService
    {
        Task<PagedResultDto<OrganizationUnitUserListsDto>> GetOrganizationUnitUsers(GetOrganizationUnitExtensionInput input);

        Task<IList<OrganizationUnitDto>> GetAllOrgs();

        Task<IList<UserListDto>> GetAllUsers();

        Task<IList<UserListDto>> GetUserList();

        Task<IList<OrganizationUnitWithUserOutputDto>> GetOrganizationUnitsWithUsers();

        Task<IList<OrganizationUnitDto>> GetOrganizationUnitByUser(GetOrganizationUnitByUserInputDto input);

        Task<IList<UserListDto>> GetUserListByOrgId(GetUserListByOrgIdInputDto input);
        Task<IList<UserListWithScheduleDto>> GetUserListWithScheduleByOrgId(GetUserListByOrgIdInputDto input);
    }
}
